home *** CD-ROM | disk | FTP | other *** search
/ Whiteline: Alpha / Whiteline Alpha.iso / progtool / c / nkcc / nkcc.sh < prev    next >
Encoding:
Text File  |  1994-09-22  |  11.8 KB  |  290 lines

  1. ********************************************************************************
  2. *
  3. *  Project name : NORMALIZED KEY CODE CONVERTER (NKCC)
  4. *  Header name  : Global definitions
  5. *  Symbol prefix: nkc
  6. *
  7. *  Author       : Harald Siegmund (HS)
  8. *  Co-Authors   : -
  9. *  Write access : HS
  10. *
  11. *  Notes        : -
  12. *-------------------------------------------------------------------------------
  13. *  Things to do : -
  14. *
  15. *-------------------------------------------------------------------------------
  16. *  History:
  17. *
  18. *  1990:
  19. *     May 23-24/26: creation of file
  20. *     Jul 09: nkc_kstate()
  21. *     Aug 03: nkc_cmp();NK_MASK
  22. *     Sep 15: BE_...
  23. *     Sep 16: nkc_timer()
  24. *     Oct 03: nkc_vlink()/vunlink(); NKXM_...
  25. *     Oct 07: removing NK_MASK (use nkc_cmp() for key code comparism!)
  26. *     Oct 13: NK_LEFT and NK_RIGHT exchanged
  27. *     Dec 11: MU_XTIMER
  28. *  1991:
  29. *     Apr 13: nkc_conv() renamed to nkc_tconv()
  30. *             nkc_gconv()
  31. *     May 29: nkc_toupper, nkc_tolower
  32. *     Aug 22: NKS_DEADKEY changed
  33. *             NKS_D_...
  34. *     Aug 26: NK_INVALID
  35. *     Sep 07: NK_TERM
  36. *     Sep 14: NKF?_IGNUM
  37. *     Nov 16: NKS?_CTRL
  38. *     Dec 29: NK_RVD...
  39. *             source documentation syntax now in extra file
  40. *  1992:
  41. *     Jan 03: redefining BE_...
  42. *             NKI_...
  43. *             first parameter of nkc_init() is now of type 'unsigned long'
  44. *     Feb 28: NKCOWNPB switch
  45. *  1993:
  46. *     Dec 11: new file header
  47. *             keys NKCNOGEM and NKCOWNPB replaced by key NKCGEM
  48. *     Dec 12: new: nkc_n2tos, nkc_n2gem
  49. *
  50. ********************************************************************************
  51. *KEY _NAME="Global NKCC definitions (assembly language)"
  52. *END
  53.  
  54.  
  55.  
  56. *START
  57. ****************************************************************************
  58. *                         ASSEMBLER CONTROL SECTION                        *
  59. ****************************************************************************
  60.  
  61. *KEY &NKCGEM
  62. *     define this symbol on the assembler's command line
  63. *     =0    create TOS-version of NKCC (without GEM part)
  64. *     =1    create GEM-version of NKCC
  65. *
  66. * For details consult the header of the file NKCC.S
  67.  
  68. *END
  69. *KEY _END
  70.  
  71.  
  72.  
  73. ****************************************************************************
  74. *                                  IMPORT                                  *
  75. ****************************************************************************
  76.  
  77.                                              ; functions
  78.                .globl   nkc_init             ; init NKCC
  79.                .globl   nkc_exit             ; exit NKCC
  80.                .globl   nkc_set              ; set special key flags
  81.                .globl   nkc_conin            ; NKCC key input via GEMDOS
  82.                .globl   nkc_cstat            ; console input status via GEMDOS
  83.                .globl   nkc_tconv            ; TOS key code converter
  84.                .globl   nkc_gconv            ; GEM key code converter
  85.                .globl   nkc_n2tos            ; NKC to TOS key code converter
  86.                .globl   nkc_n2gem            ; NKC to GEM key code converter
  87.                .globl   nkc_kstate           ; return shift key state
  88.                .globl   nkc_timer            ; return 200 Hz system clock
  89.                .globl   nkc_cmp              ; compare two key codes
  90.                .globl   nkc_vlink            ; link function to XBRA vector list
  91.                .globl   nkc_vunlink          ; unlink function from XBRA list
  92.                .globl   nkc_toupper          ; convert character to upper case
  93.                .globl   nkc_tolower          ; convert character to lower case
  94.  
  95.                .if      NKCGEM=1
  96.  
  97.                 .globl  nkc_multi            ; NKCC multi event handler
  98.                 .globl  nkc_amulti           ; multi event, assembler binding
  99.                 .globl  nkc_contrl           ; GEM parameter arrays
  100.                 .globl  nkc_intin
  101.                 .globl  nkc_intout
  102.                 .globl  nkc_adrin
  103.                 .globl  nkc_adrout
  104.                 .globl  nkc_ptsin
  105.                 .globl  nkc_ptsout
  106.  
  107.                .endif   ; .if NKCGEM=1
  108.  
  109.  
  110.  
  111. ****************************************************************************
  112. *                                 EQUATES                                  *
  113. ****************************************************************************
  114.  
  115. *              flags for NKCC initialization
  116.  
  117. NKIb_BUTHND    =        0                    ; install button event handler
  118. NKIb_BHTOS     =        1                    ; additional flag: only if TOS has
  119.                                              ;  mouse click bug
  120. NKIb_NO200HZ   =        2                    ; don't install 200 Hz clock
  121.                                              ;  interrupt (this flag is ignored
  122.                                              ;  if the button event handler is
  123.                                              ;  being activated)
  124.  
  125. NKIf_BUTHND    =        $00000001
  126. NKIf_BHTOS     =        $00000002
  127. NKIf_NO200HZ   =        $00000004
  128.  
  129.  
  130.  
  131. *              flag combinations for compatibility with old versions of NKCC
  132.  
  133. BE_ON          =        NKIf_BUTHND
  134. BE_OFF         =        0
  135. BE_TOS         =        (NKIf_BUTHND|NKIf_BHTOS)
  136.  
  137.  
  138.  
  139. *              flags for special key code handling
  140.  
  141. NKSb_ALTNUM    =        0                    ; Alt + numeric pad -> ASCII
  142. NKSb_CTRL      =        1                    ; Control key emulation
  143.                                              ; deadkey management:
  144. NKSb_D_CIRCUM  =        16                   ; ^  accent circumflex
  145. NKSb_D_TILDE   =        17                   ; ~  accent tilde
  146. NKSb_D_AGUI    =        18                   ; '  accent agui
  147. NKSb_D_GRAVE   =        19                   ; `  accent grave
  148. NKSb_D_UMLAUT  =        20                   ; ¨  umlaut
  149. NKSb_D_QUOTE   =        21                   ; "  quote, synonym for umlaut
  150. NKSb_D_SMOERE  =        22                   ; °  smoerebroed
  151. NKSb_D_CEDIL   =        23                   ; ,  cedil
  152. NKSb_D_SLASH   =        24                   ; /  slash, for scandinavian chars
  153.  
  154. NKSf_ALTNUM    =        $00000001
  155. NKSf_CTRL      =        $00000002
  156. NKSf_D_CIRCUM  =        $00010000
  157. NKSf_D_TILDE   =        $00020000
  158. NKSf_D_AGUI    =        $00040000
  159. NKSf_D_GRAVE   =        $00080000
  160. NKSf_D_UMLAUT  =        $00100000
  161. NKSf_D_QUOTE   =        $00200000
  162. NKSf_D_SMOERE  =        $00400000
  163. NKSf_D_CEDIL   =        $00800000
  164. NKSf_D_SLASH   =        $01000000
  165.  
  166. NKSf_DEADKEY   =        $ffff0000            ; all deadkeys
  167.  
  168.  
  169.  
  170. *              NKCC key flags
  171.  
  172. NKFb_FUNC      =        15                   ; function
  173. NKFb_RESVD     =        14                   ; reserved, ignore it!
  174. NKFb_NUM       =        13                   ; numeric pad
  175. NKFb_CAPS      =        12                   ; CapsLock
  176. NKFb_ALT       =        11                   ; Alternate
  177. NKFb_CTRL      =        10                   ; Control
  178. NKFb_LSH       =        9                    ; left Shift key
  179. NKFb_RSH       =        8                    ; right Shift key
  180.  
  181. NKFb_IGNUM     =        NKFb_RESVD           ; special flag for nkc_cmp()
  182.  
  183. NKFf_FUNC      =        $8000
  184. NKFf_RESVD     =        $4000
  185. NKFf_NUM       =        $2000
  186. NKFf_CAPS      =        $1000
  187. NKFf_ALT       =        $0800
  188. NKFf_CTRL      =        $0400
  189. NKFf_LSH       =        $0200
  190. NKFf_RSH       =        $0100
  191.  
  192. NKFf_IGNUM     =        NKFf_RESVD
  193.  
  194. NKFf_SHIFT     =        $0300                ; both shift keys
  195.  
  196.  
  197.  
  198. * Special key codes for keys performing a function
  199.  
  200. NK_INVALID     =        $00                  ; invalid key code
  201. NK_UP          =        $01                  ; cursor up
  202. NK_DOWN        =        $02                  ; cursor down
  203. NK_RIGHT       =        $03                  ; cursor right
  204. NK_LEFT        =        $04                  ; cursor left
  205. NK_RVD05       =        $05                  ; reserved!
  206. NK_RVD06       =        $06                  ; reserved!
  207. NK_RVD07       =        $07                  ; reserved!
  208. NK_BS          =        $08                  ; Backspace
  209. NK_TAB         =        $09                  ; Tab
  210. NK_ENTER       =        $0a                  ; Enter
  211. NK_INS         =        $0b                  ; Insert
  212. NK_CLRHOME     =        $0c                  ; Clr/Home
  213. NK_RET         =        $0d                  ; Return
  214. NK_HELP        =        $0e                  ; Help
  215. NK_UNDO        =        $0f                  ; Undo
  216. NK_F1          =        $10                  ; function key #1
  217. NK_F2          =        $11                  ; function key #2
  218. NK_F3          =        $12                  ; function key #3
  219. NK_F4          =        $13                  ; function key #4
  220. NK_F5          =        $14                  ; function key #5
  221. NK_F6          =        $15                  ; function key #6
  222. NK_F7          =        $16                  ; function key #7
  223. NK_F8          =        $17                  ; function key #8
  224. NK_F9          =        $18                  ; function key #9
  225. NK_F10         =        $19                  ; function key #10
  226. NK_RVD1A       =        $1a                  ; reserved!
  227. NK_ESC         =        $1b                  ; Esc
  228. NK_RVD1C       =        $1c                  ; reserved!
  229. NK_RVD1D       =        $1d                  ; reserved!
  230. NK_RVD1E       =        $1e                  ; reserved!
  231. NK_DEL         =        $1f                  ; Delete
  232.  
  233.                                              ; terminator for key code tables
  234. NK_TERM        =        (NKFf_FUNC|NK_INVALID)
  235.  
  236.  
  237.  
  238. * ASCII codes less than 32
  239.  
  240. NUL            =        $00                  ; Null
  241. SOH            =        $01                  ; Start Of Header
  242. STX            =        $02                  ; Start Of Text
  243. ETX            =        $03                  ; End Of Text
  244. EOT            =        $04                  ; End Of Transmission
  245. ENQ            =        $05                  ; Enquiry
  246. ACK            =        $06                  ; positive Acknowledgement
  247. BEL            =        $07                  ; Bell
  248. BS             =        $08                  ; BackSpace
  249. HT             =        $09                  ; Horizontal Tab
  250. LF             =        $0a                  ; Line Feed
  251. VT             =        $0b                  ; Vertical Tab
  252. FF             =        $0c                  ; Form Feed
  253. CR             =        $0d                  ; Carriage Return
  254. SO             =        $0e                  ; Shift Out
  255. SI             =        $0f                  ; Shift In
  256. DLE            =        $10                  ; Data Link Escape
  257. DC1            =        $11                  ; Device Control 1
  258. XON            =        $11                  ; XON: same as DC1
  259. DC2            =        $12                  ; Device Control 2
  260. DC3            =        $13                  ; Device Control 3
  261. XOFF           =        $13                  ; XOFF: same as DC3
  262. DC4            =        $14                  ; Device Control 4
  263. NAK            =        $15                  ; Negative Acknowledgement
  264. SYN            =        $16                  ; Synchronize
  265. ETB            =        $17                  ; End of Transmission Block
  266. CAN            =        $18                  ; Cancel
  267. EM             =        $19                  ; End of Medium
  268. SUB            =        $1a                  ; Substitute
  269. ESC            =        $1b                  ; Escape
  270. FS             =        $1c                  ; Form Separator
  271. GS             =        $1d                  ; Group Separator
  272. RS             =        $1e                  ; Record Separator
  273. US             =        $1f                  ; Unit Separator
  274.  
  275.  
  276.  
  277. * XBRA vector link/unlink modes
  278.  
  279. NKXM_NUM       =        0                    ; by vector number
  280. NKXM_ADR       =        1                    ; by vector address
  281.  
  282.  
  283.  
  284. * additional flag in event mask
  285.  
  286. MU_XTIMER      =        $100
  287.  
  288.  
  289. * End Of File
  290.